Simply repeat the input string to the output. This is the default function for new stages.
Link: Echo String
Ignore the input string and output an empty string or replace it with the string entered as an argument.
Link: Clear String
Add strings to the beginning and end of the input string.
red
Top and Tail: Top = 'You've Got ', Tail = ' on you'
You've got red on you
Link: Add to the begining and end of a string
Remove characters from the beginning and end of the string.
640K should be enough for everyone
Trim: Start = 1, End = 13
40K should be enough
Link: Trim String
Add characters at regular intervals in the string. Arguments: Size, the length of the interval after which the characters will be inserted; Offset, distance from the beginning of the string that the interval should measured; Chars, the character or sequence of characters to be inserted.
The effects of prolonged exposure to the button are not part of this test
Chop: Size = 2, Offset = 0, Chars = :
Th:e :ef:fe:ct:s :of: p:ro:lo:ng:ed: e:xp:os:ur:e :to: t:he: b:ut:to:n :ar:e :no:t :pa:rt: o:f :th:is: t:es:t
Link: Chop a string into fixed-length substrings
Reverse the order of the characters in the string. If the string contains UTF-16 surrogate pair encoded characters the order of each pair will be reversed and the relationship lost. Reversing the string again will restore these characters.
kayak
Reverse: [no arguments]
kayak
Link: Reverse String
Exchange all Unicode space characters with the traditional ASCII space character (U+0020). The current list of Unicode space characters that are affected by this function is: U+00A0, U+1680, U+180E, U+2002, U+2003, U+2004, U+2005, U+2006, U+2007, U+2008, U+2009, U+200A, U+200B, U+200C, U+200D, U+202F, U+205F, U+2060, U+2594, U+2800, U+3000, U+FEFF. This list may be expanded in future.
Remove all Unicode space characters listed in Normalise Spaces.
Sector ZZ9 Plural Z Alpha
Strip Spaces: [no arguments]
SectorZZ9PluralZAlpha
Link: Strip Spaces from String
Increase the length of the string by adding characters to the beginning. Strings with length greater than or equal to the required length will be unchanged. Arguments: Pad Length, how long the string should be; Pad Char, characters to add to the left (if using multiple characters the complete set will be added repeatedly until the string is greater than or equal to the required length.
101000000
Left Pad String: Pad Length = 8, Mod = true, Chars = '0'
0000000101000000
Bar
Left Pad String: Pad Length = 8, Mod = false, Chars = 'Foo'
ooFooBar
Link: Left Pad String
As Left Pad String, but characters are added to the end of the string.
101000000
Right Pad String: Pad Length = 8, Mod = true, Chars = '0'
1010000000000000
Foo
Right Pad String: Pad Length = 8, Mod = false, Chars = 'Bar'
FooBarBa
Link: Right Pad String
Shorten the string to a given length by removing characters from the right.
Hello World
Limit to Left: Length = 8, Mod = false
Hello Wo
Link: Limit String to Left
Shorten the string to a given length by removing characters from the left.
Hello World
Limit to Right: Length = 8, Mod = false
lo World
Link: Limit String to Right
Cut characters from one end of the string and concatate them to the other.
Hello World
Rotate String: Distance = 3
rldHello Wo
Link: Rotate String
Outputs the number of characters in the string. UTF-16 surrogate pair encoded characters are counted as two characters.
Hello World
Count Characters:[no arguments]
11
Link: Count Characters in String
Insert a comment into the stack. The comment will be displayed in the stage output but will not alter the input string at all. Use this to describe your stack and how to use it. Multiple comments can be used in the stack.
Link: Stack Comment
This will update the page title to the defined string. The title will be appeneded to the "String Thinger" name. It should be noted that the currently loaded page does not carry the encoded version of the stack in it's loaded URL so simply bookmarking this will not save the stack though the bookmark will carry the title. To save the encoded stack with the title will require clicking one of the link's below the stack. This is really intended to assist in sharing stacks.
Link: Stack Title
Remove or replace all instances of a string with in the input string. This does not involve any regular expression syntax and matches will always be exact.
Hello World
Replace All: Find = 'World', Replace = 'Foo Bar'
Hello Foo Bar
Link: Replace All
Remove or replace anything that matches the given regular expression. The Regular Expression should contain the beginning and ending slashes and the modifiers , eg '/\w+/g'. You can also use sub string capture with parentheses and use the capture in the replacement, as in a substitution expression, for instance: Find = '/(\w)(\w)/g' Replace = '$2$1' will swap each pair of adjacent word characters.
It should be noted that there are some issues for JavaScript regular expressions, some of them browser specific. At present JS RegExp should not be expected to support Unicode matching syntax such as '\p{L}'. In most browsers the period '.' will never match a newline '\n' as there is no 's' modifier (the 's' modifier is permitted by StringThinger but my generate an error in browsers that do not support it). In Firefox the class '[^]' (literally "not nothing") will match everything including '\n', but in IE it will throw an "Expected ']' in regular expression" error.
Hello World
Replace All: Find = '/(\w)(\w)/g', Replace = '$2$1'
eHllo oWlrd
Link: RegExp Replace
This trades characters from one list found in the input string with those from the corresponding position in another, so any occurance of the sixth character in the first list will be traded for the sixth character in the second list in the output. If one list is longer than the other then the additional characters at the end of the longer list are ignored. The string is parsed character-by-character so 'ou' can be traded for 'uo' without unwanted recursion.
Hello World
Trade: Find = 'aeiou', Replace = 'eioua'
Hillu Wurld
Link: Trade characters in string
Some of these functions deal with character case, and it should be noted that support for case recognition and translation in languages other than those using ASCII is patchy if it is present at all.
Convert all lower case characters to upper case. This uses JavaScript's own String.toUppercase method.
Hello World
UPPER CASE: [no arguments]
HELLO WORLD
Link: String to Upper Case
Convert upper case characters to lower case.
Hello World
lower case: [no arguments]
hello world
Link: String to Lower Case
Converts the first character and all occarances of /\bi\b/ in each sentence to upper case. This does not affect any other character cases.
forget i said anything.
Sentence case: [no arguments]
Forget I said anything.
Link: String to sentence case
Convert the first character in each word to upper case. This does not affect the case of any other characters. This uses simple "Start Case" in which the first letters in all words will be converted to upper case, including articles, prepositions, and conjunctions.
We, in some strange power's employ, move on a rigorous line
Title Case: [no arguments]
We, In Some Strange Power's Employ, Move On A Rigorous Line
Link: String to Title Case
This reverses the case of each character in turn, upper to lower, lower to upper.
Time Considered as a Helix of Semi-Precious Stones
iNVERT cASE: [no arguments]
tIME cONSIDERED AS A hELIX OF sEMI-pRECIOUS sTONES
Link: Invert the case of a string
Replace or remove all English vowels from the string. This is essencially RegExp Replace with the Find argument preset to '/[aeiou]/g'.
Time Considered as a Helix of Semi-Precious Stones
Disenvowel: Replace = '_'
T_m_ C_ns_d_r_d _s _ H_l_x _f S_m_-Pr_c___s St_n_s
Link: Disenvowel a string
Replace or remove all but the first and last letters in each word. Similar to Disenvowel, this function is essentially RegExp Replace with the Find argument preset to '/\B\w\B/g'.
Let's play that word-guessing game... Monopoly!
Gut Words: Replace = '_'
L_t's p__y t__t w__d-g______g g__e... M______y!
Link: Gut a string
Return the number of units in the string separated by spaces.
There are four lights!
Count Words: [no arguments]
4
Link: Count words in a string
Remove all HTML tags from the string, optionally replacing them with other characters. Arguments: Replace: the characters with which to replace each tag.
There are <striog>four</strong> lights!
Strip HTML: Replace = ' '
There are four lights!
Link: Strip HTML tags from a string
Return a list of identifiable URLs from the string, including those in HTML tag attributes. Arguments: Separator -
<a href="http://stringthinger.com/">link 1</a> <a href="http://ruinsofmorning.net/">link 2</a>.
Extract URLs: Separator = ', '
http://stringthinger.com/, http://ruinsofmorning.net/
Link: Extract URLs from string
Format a string containing HTML code returning entities in place of XML charcters (<>"'&). Arguments: Spaces per tab - the number of white space characters to replace each tab character with for pre-formatted display.
This is <strong>Quoted HTML</strong>.
Quote HTML: Replace = false, Tab = '', Newline = ''
This is <strong>Quoted HTML</strong>.
Link: Quote HTML
Process the string looking for unmatched tags using stack order. Unmatched opening tags will have a corresponding closing tag inserted before the closing tag of the parent element. Unmatched closing tags are deleted. Self-closing / empty tags are ignored. This does not check the validity of HTML tags name nor their permitted context. This also runs the Tidy XML Chars (IE) function prior to processing.
This function is integrated into the StringThinger root object and is used to handle formatted output.
<p>This is an <em><strong>invalid</em> markup</strong> example.
Balance HTML / XML: [no arguments]
<p>This is an <em><strong>invalid</strong></em> markup example.</p>
Link: Balance HTML / XML
Insert the string into the page as rendered HTML. This is useful for formatting purposes, such as generating a layout with newlines (<br />). The input string is returned unchanged. StringThinger will automatically run the Balance HTML / XML function prior to display to prevent breaking the String Thinger page layout. For user security This process includes tests for images and inline or embedded scripts or css. The output will be blocked should any of these be detected.
To turn off this protection, disable the security measures at the bottom of the StringThinger page. Disabling these measures is not recommended if you did not generate the stack input yourself.
This example of <a href="http://en.wikipedia.org/wiki/Html">HTML</a> will be inserted into the <em>StringThinger</em> page.
Balance HTML / XML: [no arguments]
This example of HTML will be inserted into the StringThinger page.
Link: Insert HTML into the page.
Relplace all occurances of the characters <
, >
,
"
, '
and &
with the standard
named XML entities <
, >
,
"
, '
and &
respectively.
The symbols < & > are used in HTML tags like this one: <img src="http://www.ruinsofmorning.net/images/blog/Ollie-Bites-Small.jpg" />
XML Entities: [no arguments]
The symbols < & > are used in HTML tags like this one: <img src="http://www.ruinsofmorning.net/images/blog/Ollie-Bites-Small.jpg" />
Link: Replace XML characters in string
Performs the same substitution as
XML Entities, but then replaces each occurance of '
with '
for compatibility with Internet Explorer.
It should be noted that when the '
entity is inserted dynamically in IE
using the Render HTML function the apostrophy appears to
be rendered as intended. However, this behaviour is undocumented and it is
recomended that it not be relied upon.
The correct named entity for the apostrophe, is '''.
XML Entities (IE): [no arguments]
The correct named entity for the apostrophe, is '&apos;'.
Link: Replace XML characters in string for Internet Explorer
Attempt to isolate instances of the XML characters <
,
>
, &
, '
and "
that are not part of valid XML markup and translate
them to named entities.
Here are some random XML characters <code><<&"<>'>>>&&"'"'</code>.
Tidy XML Chars: [no arguments]
Here are some random XML characters <code><<&"<>'>>> &&"'"'</code>.
Link: Tidy loose XML characters
As Tidy XML Chars but uses '
in place of
'
.
Here are some random XML characters <code><<&"<>'>>>&&"'"'</code>.
Tidy XML Chars: [no arguments]
Here are some random XML characters <code><<&"<>'>>>& amp;&"'"'</code>.
Link: Tidy loose XML characters for Internet Explorer
Converts all characters into decimal numeric entities.
Numbers exist only in our minds.
All Numeric Entities: [no arguments]
Numbers  exist onl y in our  minds.
Link: Convert a string to numeric entities
As with All Numeric Entities but the entities are defined using hexadecimal notation rather than decimal.
Hello World
All Hex Entities: [no arguments]
Hello Wo rld
Link: Convert string to hexadecimal entities
Convert to named entities any characters for which there is a named entity is defined.
Σαράντα δύο
Any Named Entities: [no arguments]
Σαράντα δύο
Link: Convert string to named html entities
Translate all numeric, hexadecimal and named HTML entities to the Unicode characters they represent.
<a href="http://el.wikipedia.org/wiki/42">Σαράντα δύο</a>
Decode All Entities: [no arguments]
<a href="http://el.wikipedia.org/wiki/42">Σαράντα δύο</a>
Link: Convert all html entities in a string
Change the base of numbers in the string.
9003
Change Base: From Base = 10, To Base = 16, Threshold = 0
232b
Link: Change the base of numbers
these functions deal with the conversion of characters to and from their underlying character codes. In JavaScript these codes are expressed as 16bit Unicode code point values encoded using UTF-16. This means that characters outside of the BMP (Basic Multilingual Plain) will be expressed as a surrogate pairs (two 16bit values used to encode a single code point). For converting the characters to their actual Unicode code points in any plain see String to Codepoints in the Unicode section.
Convert each character into its decimal character code values. This function uses
JavaScript's Number.toString()
method to perform the conversion.
consensual hallucination
Decimal from String: Pad = 1, Separator = ', '
99, 111, 110, 115, 101, 110, 115, 117, 97, 108, 32, 104, 97, 108, 108, 117, 99, 105, 110, 97, 116, 105, 111, 110
Link: Convert string to decimal character values
Convert all decimal numbers to the characters represented by their values. This
function uses any non-numeric character, or sub-string of such characters, as a
value separator so 56seven89
will be treated as 56
and
89
, which will be converted the characters 8Y
. All other
characters are discarded. As with Decimal from String
this function uses UTF-16 thus all values are truncated to the least significant
16 bits prior to conversion. This function uses JavaScript's
parseInt()
function to parse the decimal values.
72, 101, 108, 108 and 111 are character code from a simple string, as are 32, 87, 111, 114, 108 and 100.
String from Dec (auto): [no arguments]
Hello World
Link: Convert numeric values to characters
As with String from Dec (auto) this converts decimal numbers in the string to the characters represented by their values. However, in this case all of the non-numeric characters are removed and the string of digits is split into fixed length sub strings. These sub strings are treated as decimal integers. This function simply performs the conversion and then feeds the result to String from Dec (auto) to generate the output so the features of that function also apply to this one.
941432434315
String from Dec (length): Length = 3
έưƲĻ
Link: Convert decimal numbers to characters based on length
Converts decimal values in the string to hexadecimal, treats each unbroken
sequence of digits as a single number. This does not alter any other characters in
the string. This function uses JavaScript's parseInt()
function
and Number.toString()
method to perform the conversion.
0 and 1
'
will become ' and 1
'14613198 10 12496365 16435934
Decimal to Hex: Pad = 0, Mod = false, Sign = false
deface a beaded facade
Link: Convert decimal values to hexadecimal
Converts decimal values in the string to binary, treats each unbroken
sequence of digits as a single number. This does not alter any other characters in
the string. This function uses JavaScript's Number.toString()
method to perform the conversion.
-
')
will generate a 32 bit two's compliment binary value.The answer is 42
Decimal to Bin: Pad = 8, Mod = false, Sign = false
The answer is 00101010
Link: Convert decimal values in string to binary
Convert the string to a list of hexadecimal character values. This function uses
JavaScript's Number.toString()
method for the conversion of the
character codes from decimal.
9906947XB71
Hex from String: Pad = 2, Mod = false, Separator = ' '
39 39 30 36 39 34 37 58 42 37 31
Link: Convert string to hexadecimal character codes
Convert hexadecimal values to the characters these values represent. The string is
split on any sequence of non-hexadecimal characters. This means that the string
heaven
will be split into the hexadecimal values EA
and 0E
. This function uses JavaScript's parseInt()
function to perform the conversion.
50 61 70 65 72 20 53 74 72 65 65 74 20 53 6F 61 70 20 43 6F 2E
String from Hex (auto): [no arguments]
Paper Street Soap Co.
Link: Convert hexadecimal character codes to string
Remove all non-hexadecimal characters and split the remainder into a given number of characters for each value. This function uses String From Hex (auto) so the features of that function also apply.
4974277320746F6F20706572696C6F757321
String from Hex (length): Length = 2
It's too perilous!
Link: Convert hexadecimal characters to characters codes
Converts all hexadecimal values in a string to decimal. This will result
in any ordinary words having the characters a, b, c, d, e and f replaced with
digits. So red green blue
will become r237 gr238n 11lu14
.
This function uses JavaScript's parseInt()
function to perform the
conversion.
75BCD15
Hex to Decimal: Pad = 10, Mod = false
0123456789
Link: Convert Hexadecimal values to decimal
Convert hexadecimal values to binary. This treats any sequence of characters of the
class [0-9A-Fa-f] as a single hex number regardless of context. Thus the string
"Damn the expense!"
will become
"11011010mn th1110 1110xp1110ns1110!"
. This function uses
JavaScript's parseInt()
function and Number.toString()
method to perform the conversion.
29A
Hex to Binary: Pad = 0, Mod = false
1010011010
Link: Convert hexadecimal values to binary
Convert the characters in the string to a list of binary values. This function uses
JavaScript's Number.toString()
method to perform the conversion of
character codes from decimal.
1337
Binary from String: Pad = 8, Mod = true, Separator = ' '
00110001 00110011 00110011 00110111
Link: Convert character codes to binary
Convert binary values to the characters represented by these values. This function
used any sequence of non-binary characters ([^10]
) as a delimiter.
Since the characters are encoded in UTF-16 the binary values are masked to the least
significant 16 bits. All non-binary characters are deleted. This function uses
JavaScript's Number.toString()
method to perform the conversion.
1001110 1101001 1101110 1101010 1100001 1110011 100001
String from Bin (auto): [no arguments]
Ninjas!
Link: Convert binary values to characters
All non-binary characters are removed and the remaining binary characters are separated into fixed length binary numbers which are then converted to the characters represented by their values. This function uses String from Bin (auto) so the features of that function also apply here.
101000011010011110010110000 1111010011001011110011100001
String from Bin (length): Length = 7
Pirates!
Link: Convert fixed length binary values to characters
Convert binary numbers in the string to decimal. This treats any sequence of binary
digits as a single number. This function uses JavaScript's parseInt()
function to perform the conversion.
There are 10 kinds of people in the world...
Bin to Decimal: Pad = 1, Mod = false
There are 2 kinds of people in the world...
Link: Convert binary values in a string to decimal
Convert binary values in the string to hexadecimal. This treats any sequence of ones
and zeros as a single number. This function uses JavaScript's parseInt()
function and Number.toString()
method to perform the conversion.
All your 10111010s1110 are belong to us.
Bin to Hex: Pad = 1, Mod = false
All your base are belong to us.
Link: Convert binary values to hexadecimal
All list functions operate on values separated by a known character or characters. Most commonly this will be a comma ',' which is the default value for most functions. Another common alternative is the a space character.
Sort list values numerically. This function operate on base36 values unless the Use Float option is selected in which case base10 will be used.
8,7,3,1,4,5,mangos,0,9,2,6
Sort Numeric: Separator = ',
', Decending = true, Use Float = false
mangos,9,8,7,6,5,4,3,2,1,0
Link: Numeric Sort
Sort list values alphabetically. Values are treated as single case so
Brave
and brave
will have to same sort priority.
Justin,Dave,Bob,Mallory,Eve,Carol,Alice,Isaac
Sort Alpha: Separator = ',
', Decending = false
Alice,Bob,Carol,Dave,Eve,Isaac,Justin,Mallory
Link: Sort values aplphabetically
Sort list values by length. To sort same-length values alphabetically or numerically add a Sort Alpha or Sort Numeric stage above.
lambs,sloths,carp,anchovies,orangutans,breakfast cereals,fruit-bats
Sort Length: Separator = ',
', Decending = false
carp,lambs,sloths,anchovies,orangutans,fruit-bats,breakfast cereals
Link: Sort list values by length
Randomise the positions of values in a list.
1,2,3,4
Unsort List: [no arguments]
2,1,4,3
Link: Randomise a list
Create a list by chopping the string into fixed-length sub-strings.
handoveryourbags
Chop to List: length = 4, Separator = '
'
hand over your bags
Link: Chop a string into fixed length values
Use a Redular Exression to extract list values from a string. This funciton has two
modes: without Match Separator checked the regular expression matches the
values make up the list; with Match Separator checked the regular expression
is used to replace the matches with the separator character. In the latter case
perenthised sub matches from Find may be used in the Separator
with $1
..$9
.
$1
..$9
.Sugar Glucose syrup Hydrogenated vegetable oil Anticaking agent: magnesium stearate Peppermint oil
RE Matches to List: Find = '/\s[A-Z]/', Match Separator = true, Separator = ',$1'
Sugar,Glucose syrup,Hydrogenated vegetable oil,Anticaking agent: magnesium stearate,Peppermint oil
Link: Split a string to list values using a regular expression
Reverse the order of list values.
Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega
Reverse List: [no arguments]
Omega Psi Chi Phi Upsilon Tau Sigma Rho Pi Omicron Xi Nu Mu Lambda Kappa Iota Theta Eta Zeta Epsilon Delta Gamma Beta Alpha
Link: Reverse a list of values
Shift the positions of the values left or right wrapping values shifted from one end to the other.
U,S,B
Rotate List: Separator = ',
', Distance = 1
B,U,S
Link: Rotate list
Split a list into sub-lists using a new separator character or characters.
?,1,2,3,4,5,A,B,C,D,E,?
Sub list: Separator = ',
', Size = 5, Offset = 1, New Separator = ' - '.
? - 1,2,3,4,5 - A,B,C,D,E - ?
Link: Chop a list into sub-lists
Add characters to the beginning and end of each value.
1,2,3,4,5
Map List: Separator ',
', Top = '(', Tail = ')'
(1),(2),(3),(4),(5)
Link: Map characters to the beginning and end of list values
Add numbering to the list values.
Collect Underpants,?????,Profit
Enumerate List: Separator = ',
', Base = 10, Start = 1, Step = 1, Map = '$1) $2
'
1) Collect Underpants,2) ?????,3) Profit
Link: Add numbering to a list
Organise values into groups based on Regular Expression matching and add headers for each group.
Trimester,We Get It,Complexion,MicroSD,Retro Virus, You Hang Up First,Admin Mourning,Children's Fantasy,Science Montage, Researcher Translation,Spirit,Snow Tracking,December 25th,Force,Dirty Harry, Gravity Wells,Honor Societies,Semicontrolled Demolition,G-Spot,Dimensional Analysis, Christmas Plans,Strip Games,FIRST Design,Self-Description,Science Valentine, Tensile vs. Shear Strength
Index List: Sep = ',
', Find = '/\s*?(\w).+/
', Index = ' $1 :
', New Sep = ';
', Other = '[Other]
'
A : Admin Mourning; C : Children's Fantasy, Christmas Plans, Complexion; D : December 25th, Dimensional Analysis, Dirty Harry; F : FIRST Design, Force; G : G-Spot, Gravity Wells; H : Honor Societies; M : MicroSD; R : Researcher Translation, Retro Virus; S : Science Montage, Science Valentine, Self-Description, Semicontrolled Demolition, Snow Tracking, Spirit, Strip Games; T : Tensile vs. Shear Strength, Trimester; W : We Get It; Y : You Hang Up First
Link: Generate an index from a list of values
Remove duplicate values from a list. Duplicates must be exact character matches.
Peter,Raymond,Egon,Peter,Winston
Unique Values: Separator = ',
'
Peter,Raymond,Egon,Winston
Link: Remove duplicate values from a list
Pop values from the right end of a list.
Lennon,McCartney,Harrison,Best
Pop Values: Separator = ',
', Pop = 1, Mod = false
Lennon,McCartney,Harrison
Link: Remove values from the end of a list
Shift values off the start of a list.
Falken's Maze,Black Jack,Gin Rummy,Hearts,Bridge,Checkers,Chess,Poker,Fighter Combat,Guerrilla Engagement,Desert Warfare,Air-to-ground Actions,Theaterwide Tactical Warfare,Theaterwide Biotoxic And Chemical Warfare,Global Thermonuclear War
Shift Values: Separator = ',
', Shift = 14, Mod = false
Global Thermonuclear War
Link: Remove values from the start of a list
Append characters to the end of each value until it reaches the required length. Longer values are ignored.
1,11,11,111
Left Pad Values: Separator = ',
', Pad = 4, Mod = false, Char = '0
'
0001,0011,0011,0111
Link: Left pad values in a list
Left pad each value to equal the length of the longest value in the list.
0000110010100000 01011111 0000110010100000
Left Pad Values (auto): Separator = ' ', Char = '0'
0000110010100000 0000000001011111 0000110010100000
Link: Automatically left-pad list values
Prepend characters to the beginning of each value until it reaches the required length. Longer values remain unchanged.
Hugh,Pugh,Barley,McGrew,Cuthbert,Dibble,Grub
Right Pad Values: Separator = ',
', Pad = 6, Mod = false, Char = '_'
Hugh__,Pugh__,Barley,McGrew,Cuthbert,Dibble,Grub__
Link: Right pad values in a list
Left pad each value to equal the length of the longest value in the list.
202-456-1414,866-907-323,347-692-,916-225-5
Left Pad Values (auto): Separator = ' ', Char = '•'
202-456-1414,866-907-323•,347-692-••••,916-225-5•••
Link: Automatically right pad values in a list
Truncate each value in the list to a given length, removing characters from the right.
666 - The number of the beast,999 - The number of the police,123 - The combination of my luggage
Separator = ',
', Length = 3, Modulus = false
666,999,123
Link: Truncate values in a list
Truncate each value in the list to a given length, removing characters from the left.
00111110,00111010,00101000
Right Limit Values: Separator = ',
', Length = 4, Mod = false
1110,1010,1000
Link: Shorten values in a list
An alias for Replace All.
Apply the JavaScript function escape()
to the string. This a
depreciated escapeing function, superseded by encodeURI
and encodeURIComponent. It's most notable features are
that it will percent encode any non-alphanumeric characters with the
exception of *-./@_+
, and that it encodes characters
with a Unicode code point greater than 0xFF using UTF-16 in the escape form
%uXXXX
. Thus the Euro symbol
'€
' will be encoded as '%u20AC
' and the
character '𧾷
' which lies outside of the Basic Multilingual Plain
will be encoded as the surrogate pair '%uD85F%uDFB7
'.
http://www.youtube.com/watch?v=J---aiyznGQ
escape: [no arguments]
http%3A//www.youtube.com/watch%3Fv%3DJ---aiyznGQ
Link: Apply JavaScript function escape()
Reverses the escape encoding.
http%3A//www.youtube.com/watch%3Fv%3D0Bmhjf0rKe8
unescape: [no arguments]
http://www.youtube.com/watch?v=0Bmhjf0rKe8
Link: Apply JavaScript function unescape()
Apply the JavaScript function encodeURI
to the string. This will not
encode alphanumeric characters or the symbols ~!@#$&*()=:/,;?+'
.
Other characters are encoded in UTF-8 the bytes of which are then percent encoded.
This function is intended to be used on complete, formatted URIs which may contain
non-ASCII characters that will need to be escaped.
http://www.example.com/watch?symbol=€
encodeURI: [no arguments]
http://www.example.com/watch?symbol=%E2%82%AC
Link: Apply JavaScript function encodeURI
Decode a string encoded using encodeURI
.
http://www.example.com/watch?symbol=%E2%82%AC
decodeURI: [no arguments]
http://www.example.com/watch?symbol=€
Link: Apply JavaScript function decodeURI
Apply the JavaScript function encodeURIComponent()
Like
encodeURI encodes non-alphanumaeric
characters with the exception of ~!*()'
using percent encoded
UTF-8 the bytes. This function is intended to be
used on individual sections of a URI prior to formatting. Most likely this will be
values in a query string that contain characters normally used in the formatted URI
or non-ASCII characters. This can, for example, be used to encode a complete URI
as a query string value in a URL.
http://www.youtube.com/watch?v=I1qHVVbYG8Y
encodeURIComonent: [no arguments]
http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DI1qHVVbYG8Y
Link: Apply JavaScript function emcodceURIComonent
Decode a string encoded with encodeURIComponent.
http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DI1qHVVbYG8Y
decodeURIComponent: [no arguments]
http://www.youtube.com/watch?v=I1qHVVbYG8Y
Link: Apply JavaScript function decodeURIComponent
Convert a string into UTF-8 bytes and return the characters whose codes corrispond to the byte values. Essentially this returns the mojibake typically seen when a UTF-8 encoded web page containing international characters indicates that it should be interpreted using ISO 8859-1.
While some of these characters are likely to be non-printable and do not appear in the visible output or are replaced with a �, the values are still available for processing by he next stage in the stack.
Ƹ̵̡Ӝ̵̨̄Ʒ
String to UTF-8: [no arguments]
Ƹ̵̡ÓÌµÌ¨ÌÆ·
Link: Convert string to UTF-8
Convert a string to UTF-8, assuming that any character with a code greater than 127 is part of a multi-byte sequence. This reverses the encoding performed by String to UTF-8.
While, in theory, this can convert mojibake to legible text, in practice the mojibake presented by browsers will not allow the copying and pasting of non-printable characters or characters that are not valid Unicode character codes (such as specials which may be replaced by �). This means that some bytes in a multi-bytes sequence will be lost during copying.
ã
UTF-8 to String: [no arguments]
ツ
Link: Convert a string from UTF-8 mojibake to text
Add a fixed value to the code of each character.
Somebody set up us the bomb
Shift UC Char Codes: Distance = 1024
ѓѯѭѥѢѯѤѹРѳѥѴРѵѰРѵѳРѴѨѥРѢѯѭѢ
Link: Shift each character code
Convert a string to a list of the characters' Unicode code points in hexadecimal. In most cases these values will match the output of Hex from String save for characters outside of the Basic Multilingual plain whose surrogate pair codes will be converted to single Unicode values.
Zathras good at doings, not understandings.
String to Codepoints: Separator = ' '
5a 61 74 68 72 61 73 20 67 6f 6f 64 20 61 74 20 64 6f 69 6e 67 73 2c 20 6e 6f 74 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 73 2e
Link: Convert a string to a list of unicode Codepoints
The reverse of String to Codepoints, converting a list of hexadecimal values and converting them to the characters represented by these codes.
5a 61 74 68 72 61 73 20 67 6f 6f 64 20 61 74 20 64 6f 69 6e 67 73 2c 20 6e 6f 74 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 73 2e
Codepoints to String: Separator = ' '
Zathras good at doings, not understandings.
Link: Convert a list of unicode Codepoints to a string
Assume the bytes of the string are from a given character set and map them to their Unicode equivelents. This generally assumes some type of mojibake as input, however it does not follow that this will reverse the incorrect application of UTF-8 to an ISO-8859 encoded text since this may have interpreted some characters as incomplete byte sequences that will not render in most browsers. Since almost all character sets carry the alphanumerics of ASCII this conversion will have little or no effect on plain Latin text.
Ƕº
Character Set to UC: Code Page = CP437 (DOS-US, OEM-US)
╟╢║
Link: Convert from character set to Unicode
Performs the reverse lookup of Character Set to UC, mapping Unicode characters to their codes in other character sets where applicable. Characters that have no mapping in the selected code page are left unchanged. Where the string contains non-ASCII characters this will produce mojibake since the string will be displayed in StringThinger's UTF-8 encoded page.
╟╢║
UC to Character Set: Code page = CP437 (DOS-US, OEM-US)
Ƕº
Link: Convert string from Unicode to another character set
Encode the string in Base64. Since Base64 encoding requires 8bit values this function checks the string for any character with a code greater than 0x7F and, if found, will automatically convert the string to UTF-8 using the function String to UTF-8 prior to encoding.
A-Z0-9
indicates
capital letters from A to Z and digits from 0 to 9 in that order. The 65th
character is used to pad the encoded string. If the range is less than 65
characters an error will be generated and the output will be empty. The default
range is A-Za-z0-9+/=
. To use a dash -
it must appear
first, last, imidiately after a valid range, or between two characters with a
decending codepoint relationship (that is, the character before the dash must
have a higher codepoint value than the one after, so F-A
defines
just those three characters including the dash while A-F
defines
the range ABCDEF
). If the generated range is greater than 65
characters only the first 65 will be used.A problem has been detected
Encode Base64: Range = 'A-Za-z0-9+/=
'
QSBwcm9ibGVtIGhhcyBiZWVuIGRldGVjdGVk
Link: Encode a string using Base64
This performs tha same function as Encode Base64 but skips the test for character codes greater than 0x7F. Instead, all character codes are truncated to the least significant 8 bits (code&255). This is useful for data that has already been encoded in some fasion that reduces the code values to less than 256.
Service rover 3 boom
Encode Base64 (UTF-8): Range = 'A-Za-z0-9+/=
'
U2VydmljZSByb3ZlciAzIGJvb20=
Link: Base64 encode string of 8bit characters.
This decodes the string using Base64. If the string does not match the profile of Base64 encoding (length devisible by 4, characters in defined range) the string will is returned unchanged. The character range definition must match that used during encoding.
U2VydmljZSByb3ZlciAzIGJvb20=
Decode Base64: Range = 'A-Za-z0-9+/=
'
Service rover 3 boom
Link: Decode Base64 encoded string
Search the string for sequences of characters matching the profile of a Base64 encoding and decode them in place. The codes are detected using the given character range and will be decoded only if their length is greater than 4 and are appropriately padded. Anything which does not match the profile is left unchanged.
Blond haired, buttercream frosted bXVyZGVyIGNha2U=.
Decode Embedded B64: Range = 'A-Za-z0-9+/=
', Threshold = 16
Blond haired, buttercream frosted murder cake.
Link: Decode Base64 encoded blocks in a string
Encrypt english text by rotating the character positions in the alphabet by 13 places. The same process also decrypts Rot13 encoded text. The function maintains character case.
Together you make a wonderful human being.
Rot13: Distance = 13
Gbtrgure lbh znxr n jbaqreshy uhzna orvat.
Link: Apply Rot13 encryption
Randomly re-arrainges the characters in the string. There is no manual seeding of the random number generator in JavaScript, instead the Math.random() method is seeded automatically using the current millisecond time. This means there is no way to maintain a randomising pattern and the randomisation will be changed every time the stage is processed. To hold a randomised string for a time it pause the stage to freeze the output or copy the output into a new stack. Pausing does not allow the randomised string to be recorded in a StringThinger link.
I am Jack's smirking revenge.
Randomise String: [no arguments]
env'enmse kJikarca.r isIgmg [possible result]
Link: Shuffle the characters in a string
returns a percentage measure of the string's strength as a password based on length, character range, duplication, etc. This should not be considered in any way a reliable measure of password suitability.
Majikthise
Password Strength %: [no arguments]
54%
Link: Estimate password strength
Generate an MD5 hash of the string. If there are any characters in the string with a character code greater than 0x7F then the string is first passed through String to UTF-8. The returned MD5 hash will be 32 hexadeciaml characters.
Storage Area 9 self destructed last week and destroyed the ship's entire supply of toilet paper.
MD5 (auto): [no arguments]
8aabd0a501566c6ecbde240bc38d8438
As MD5 (auto) but the character codes are assumed to be 8bit values. All values are masked to the least significant 8 bits prior to processing (code&127).
The slow blade penetrates the shield.
MD5 (for UTF-8): [no arguments]
5c6e292efe0efa76521d347cc03aeaa4
Link: Generate an MD5 hash from a string of 8bit characters
Encrypt the string using a polyalphabetic substitution Vigenère cipher which uses a series of Caesar ciphers derived from the letters in the given keyword. Essentially the substitution for each letter is decided by the relative distance from the letter in the same position in the key which is wrapped to match the length of the plain text input. This only functions with the Latin alphabet, all other characters in both the plain text input and the key will be ignored by the encryption process. The cypher text will retain the case of the plain text.
one two
will produce the
same cyphertext as One&Two
.Are you suggesting coconuts migrate?
Vigenère cipher: Key = 'Not at all
Nfx yhu dftuxsmiyr pcvogued zwzrttp?
Link: Encrypt a string using a Vigenère cipher
Decrypts cyphertext encypted using Vigenère cipher. As with the encryption process the process will ignore non-alpha characters in both the cypher text and the key. Othe than the ignored characters the key must be identical to the one used for encryption.
one two
will produce the
same cyphertext for the same input as One&Two
.Nfx yhu dftuxsmiyr pcvogued zwzrttp?
Vigenère cipher: Key = 'notatall
'
Are you suggesting coconuts migrate?
Link: Decrypt a string encoded using a Vigenère cypher
Generate a random string of characters from the range available from the input string. One way to create a token of a range of specific characters is to use the Make Char Range to create an expanded set as input. As with Randomise String the there is no ability to seed the randon number generator, so the result will be different each time the stage is processed. The process may select any of the characters from the input including spaces, newlines, combining/zero-width characters.
The only winning move is not to play
Make Token: Length = 32
mmiae oaspsponoamgmaspnnitgitoys [possible result]
Link: Generate a random string from a set of characters
Output a set of characters from a given range.
0-9A-Z
Make Char Range: Range = '', Limit = 1000
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
Link: Make a list of characters
In a sense this function reverses the process of
Make Char Range generating a range definition from the
available characters in the string. The shortest sequential range (defined by
the dash as in a-z
) is four characters, a smaller
range than this takes up fewer characters than the definition of the range. So
abcd
will be collapsed to a-d
, but efg
will
be returned as is.
the quick brown fox jumps over the lazy dog
Make Range from Chars: [no arguments]
a-z
Link: Generate character range definition
Output the code of the function as generated by the Function.toString() method. Without a function name it will output a list of function titles and names.
[no input]
Show Function Code: Function Name = 'revstring
'
function (string) { var new_string = ""; var i = string.length; while (i--) { new_string += string.charAt(i); } return new_string; }
Link: Display function code
Apply a sub stack to each item in a list. See the Super Stage section for more information on using this function.
$1
will be
replaced by the original string of the list item, while $2
will be
replaced with the processed string.Apply a sub stack to every match in the string. See the Super Stage section for more information on using this function.
$1
will be replaced by the original string of the list
item, while $2
will be replaced with the processed string.Convert the string to morse code. Characters with no Morse Code representation are discarded.
dot dot dot dot pause dot
To Morse Code: Dot = '.', Dash = '-', Space = '/', Pause = ' '
-.. --- - / -.. --- - / -.. --- - / -.. --- - / .--. .- ..- ... . / -.. --- -
Link: Convert a string to Morse Code
Decode a Morse Code sequence to a readable string. Replaces sequences of characters defined as Morse Code with the characters they represent. The characters in the returned string are always in upper case.
DOT DOT DOT DOT PAUSE DOT DOT
From Morse Code: Dot = 'DOT', Dash = 'DASH', Space = 'SPACE', Pause = 'PAUSE'
HI
Link: Decode Morse Code
Replace each alpha character with its NATO phonetic spelling alphabet code words. Title case will be used for code word replacing a capital letter and lower case for all other code words.
RTFM
To NATO Phonetic: Space = '', Period = 'Stop', Separator = ' '
Romeo Tango Foxtrot Mike
Link: Convert string to NATO phenetic spelling alphabet
Replace each NATO phonetic code word with the character it represents. All words from the input are truncated to the first letter regardless of whether the word is actually defined as NATO Phonetic, except those defined in the arguments replacing spaces and periods. The input string will always be split on the defined separator.
stop Hotel alfa mike mike echo romeo Tango india mike echo
From NATO Phonetic: Space = 'space', Period = 'stop', separator = ' '
.HammerTime
Link: Convert Nato phonetic selling alphabet sequence to a string
Replace characters in the string with Unicode alternatives that resemble the original rotated through 180°. The string is first converted to lower case and the resulting string is reversed. Characters with no defined alternates will be repeated in the output unchanged.
Visit Australia
Flip Text: [no arguments]
ɐıןɐɹʇsnɐ ʇısıʌ
Link: Flip Text
Reverse the Flip Text process. If successful this will produce a lower case string. Characters that are not defined as flipped are repeated in the output unchanged.
ɐıןɐɹʇsnɐ ǝʌɐǝן
Un-Flip Text: [no arguments]
leave australia
Link: Un-flip flipped text.